//
// Created on 2025/8/23.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".

#ifndef MD360PLAYER4OH_MD_RENDERER_H
#define MD360PLAYER4OH_MD_RENDERER_H

#include <string>
#include "md_lifecycle.h"
#include "device/md_nativewindow_ref.h"

namespace asha {
namespace vrlib {

class MD360RendererAPI : public MD360LifecycleAPI {
public:
    static std::shared_ptr<MD360RendererAPI> CreateRenderer(); 
public:
    virtual int SetSurface(std::shared_ptr<MDNativeWindowRef> ref) = 0;
    virtual int OnDrawFrame() = 0;
    virtual void UpdateMVPMatrix(float* matrix) = 0;
    virtual uint64_t GetVideoSurfaceId() = 0;
    virtual void SetClearColor(float r, float g, float b, float a) = 0;
    virtual void SetCullFaceEnabled(bool enabled) = 0;
    virtual void SetDepthTestEnabled(bool enabled) = 0;
};

}
};


#endif //MD360PLAYER4OH_MD_RENDERER_H

